#include <stdio.h>
#include <string.h>
#if 1
int my_strchar(const char *buf, char ch);
int main()
{
    int i;
    char buf[] = "hello world";
    i = my_strchar(buf, 'o');
    printf("The first occurrence of 'o' is at position %d\n", i+1);
    return 0;
}

int my_strchar(const char *buf, char ch)
{
    const char *p1 = buf;
    while (*p1 != '\0')
    {
        if (*p1 == ch)
        {
            return p1 - buf;
        }
        else
        p1++;
    }    
}
#endif
#if 0
char *my_strchr(const char *str, int c)
{
    while (*str != '\0')
    {
        if (*str == c)
        {
            return (char *)str; // 找到字符，返回指针   str 是一个 const char* 类型的指针。为了与函数的返回类型一致，需要将其转换为 char* 类型。
        }
        str++;
    }
    if (c == '\0')
    {
        return (char *)str; // 如果查找的字符是字符串结束符'\0'，也返回指针
    }
    return NULL; // 未找到字符，返回NULL
}

int main()
{
    const char *str = "Hello, World!";
    char ch = 'd';
    char *result = my_strchr(str, ch);

    if (result != NULL)
    {
        printf("字符 '%c' 位置在第%ld位\n", ch, result - str + 1);
    }
    else
    {
        printf("字符 '%c' 未找到\n", ch);
    }

    return 0;
}
#endif